import { TimeRange } from "@/utils"

export interface IQueryListParams {
	endTime?: string
	inputType?: number
	inputValue?: string
	merchantId?: string
	orderStatus?: string
	pageNum: number
	pageSize: number
	rebateAmountMax?: string
	rebateAmountMin?: string
	startTime?: string
	topProxyName?: string
	searchTime?: TimeRange
}

export interface IResponseItem {
	accountStatus: null | string
	audit1Cost: number
	audit1Desc: string
	audit1Operator: string
	audit1Result: number
	audit1Time: string
	audit2Cost: number
	audit2Desc: string
	audit2Operator: string
	audit2Result: number
	audit2Time: string
	createdTime: string
	currency: string
	cycleEndDate: number
	cycleName: string
	cycleStartDate: number
	id: string
	merchantId: string
	merchantName: string
	orderNo: string
	orderStatus: number
	personRebateAmount: number
	proxyId: string
	proxyLevelName: string
	proxyName: string
	rebateAdjustAmount: null | number
	rebateAmount: number
	reportDate: number
	topProxyId: string
	topProxyName: string
}

export interface IQueryItemDetailParams {
	eventId: string
}
export interface IResponseItemDetail {
	accountWindControl: string
	appTypeStr: string
	audit1Desc: string
	audit1Operator: string
	audit1Result: number
	audit1Time: string
	audit2Desc: string
	audit2Operator: string
	audit2Result: number
	audit2Time: string
	audit3Desc: null | string
	audit3Operator: null | string
	audit3Result: null | number
	audit3Time: null | string
	bankCardAddress: null | string
	bankCardRealName: null | string
	bankName: null | string
	bankcardNo: null | string
	bankcardWindControl: string
	bigWithdraw: number
	cash: number
	channelName: string
	completeAmount: number
	confirmDesc: string
	confirmOperator: string
	confirmResult: number
	confirmTime: string
	createdAt: string
	creditAvailable: number
	creditTotal: number
	deviceNo: string
	deviceNoWindControl: string
	eventId: string
	firstWithdrawStatus: number
	imageUrls: string[]
	ip: string
	ipAttribution: string
	ipWindControl: string
	labelName: null | string
	lastLoginDatetime: string
	lastWithdrawAmountCny: number
	lastWithdrawAmountUsdt: number
	lastWithdrawChannel: string
	lastWithdrawClientStatus: number
	lastWithdrawStatus: number
	lastWithdrawTime: string
	lastWithdrawType: number
	loginLockStatus: number
	merchantName: string
	netAsset: number
	orderAmountCny: number
	orderAmountUsdt: number
	parentProxyName: null | string
	paymentLockStatus: number
	realName: null | string
	registerIp: string
	registryAppTypeStr: string
	remainAmount: number
	snapshotTine: string
	symbolCny: string
	symbolUsdt: string
	teamNetAsset: number
	teamShouldRepay: number
	teamWithdrawAmount: number
	thirdOrderNo: null | string
	todayCanWithdrawAmount: number
	todayCanWithdrawCount: number
	todayWithdrawAmount: number
	todayWithdrawCount: number
	totalDeposit: number
	totalDepositNum: number
	totalDepositWithdrawSub: number
	totalWithdraw: number
	totalWithdrawNum: number
	usdtAddress: string
	usdtType: number
	userName: string
	validAmount: number
	virtualAccountWindControl: string
	virtualCurrencyType: null | string
	withdrawInfo: string
	withdrawLimitType: number
	withdrawType: number
}

export interface IAuditListItem {
	step: string
	auditOperator: string
	auditTime: string | null
	auditDesc: string | null
	auditResult: string
}

export interface IProxyRateDetailPageQueryParams {
	pageNum: number
	pageSize: number
	proxyId: string
	reportEndDate: number
	reportStartDate: number
}

export interface IProxyRateDetailPageItemResponse {
	activeNum: number
	childRebateAmount: number
	contractId: number
	contractLevel: number
	currency: string
	effecactiveActiveNum: number | null
	memberName: string | null
	memberRebateAmount: number | null
	payoutStatus: number
	personRebateAmount: number
	proxyId: string
	proxyName: string
	rebateAmount: number
	rebateRate: number
	reportDate: string
	totalAdjustBetAmount: number
	totalBetAmount: number
	totalRealBetAmount: number
}

export interface IProxyDetailQueryParams {
	merchantId: string
	userName: string
}

export interface IProxyDetailResponse {
	accountType: number
	accumulatedCommission: number
	accumulatedRebate: number
	auditList: any[]
	bankChannelStatus: null | any
	birthday: null | any
	businessModel: number
	commissionBalance: number
	commissionContractId: number
	commissionModel: null | any
	commissionPolicyTypeId: number
	contractModel: number
	contractStatus: number
	createdAt: string
	creditLevel: number
	crossOptLevel: number
	currency: string
	debtStatus: number
	directlyUnderMemberNum: number
	directlyUnderProxyNum: number
	email: null | string
	enforceContractStatus: number
	entryAuthority: number
	flygram: null | any
	gender: number
	id: string
	isTransformMember: boolean
	joinCode: string
	labelId: number
	labelName: null | string
	lastLoginDatetime: string
	lastLoginDeviceNo: null | string
	lastLoginIp: string
	liquidationStatus: number
	loginLockStatus: number
	maxLevel: number
	merchantId: string
	merchantName: string
	merchantPath: string
	mobile: null | string
	parentMerchantId: number
	parentMerchantPath: string
	parentProxyId: string
	parentProxyLevel: number
	parentProxyLevelName: string
	parentProxyName: string
	parentProxyPath: string
	payPassword: string
	paymentLockStatus: number
	playerToProxy: number
	proxyLevel: number
	proxyLevelName: string
	proxyPath: string
	proxyPathUsername: string
	qq: null | string
	quotaBalance: number
	realName: null | string
	rebateAllotMode: number
	rebateContractId: number
	rebatePolicyTypeId: number
	rebateRateTemplateId: null | any
	rebateRateTemplateName: null | string
	registerDeviceNo: string
	registerDeviceType: number
	registerIp: string
	registerIpWindControl: string
	topImagesUrl: null | string
	topMerchantId: string
	topMerchantName: string
	topProxyId: string
	topProxyName: string
	transferInNum: number
	transferOutNum: number
	underMemberNum: number
	underProxyNum: number
	userName: string
	windControlId: number
	windControlName: string
	withdrawLimitType: number
}

export interface IProxyTeamQueryParams {
	id: string
	reportDate: number | string
	reportType: string
}

export interface IProxyTeamItemResponse {
	platformFlag: null | any
	rebateAmount: number
	rebateRate: number
	serviceAmount: number
	serviceAmountContribution: number
	serviceChargeHand: number
	serviceChargeHandContribution: number
	serviceChargeRound: number
	serviceChargeRoundContribution: number
	validBetAmount: number
	venueName: string
}

export interface IProxyAuditDetailHeaderQueryParams {
	id: string
	proxyId: string
}

export interface IProxyAuditDetailHeaderResponse {
	accountsResp: {
		userName: string
		proxyId: null | any
		realName: string
		parentProxyAccount: string
		accountType: number
		merchantName: string
		loginLockStatus: number
		accountLockStatus: number
		labelId: null | any
		proxyLevel: string
		riskLevel: string
		registerDate: string
		totalBrokerageTimes: null | number
		totalReceiveBrokerage: null | number
		totalReceivePersonBrokerage: number
		totalPayableBrokerage: null | number
		totalReceiveRebate: number
		totalRebateTimes: number
		totalBetAmount: number
		activeNum: number
		effecactiveActiveNumNew: number
		contractId: number
		rebateRate: number
		contractLevel: number
		totalAdjustBetAmount: number
		totalRealBetAmount: number
		rebateAmount: number
		personRebateAmount: number
		childRebateAmount: number
	}
	proxyRebateAuditDetailList: {
		lockOperator: string
		auditTime: string
		auditDesc: string
		auditStep: number
	}[]
}

export interface IProxyRebateDetail {
	proxyId: number
	reportType: number
	reportDate?: number
}

export interface IOutlineInfoRequestParams {
	userName: string
	merchantId: string
}

export interface IOutlineInfoResponse {
	accountType: number
	auditList: any[]
	balance: number
	birthday: null | any
	businessModel: number
	clubId: null | any
	clubName: null | any
	createdAt: string
	creditAvailable: number
	creditBalance: number
	creditLevel: number
	creditShouldRepayment: null | any
	currency: string
	email: null | string
	firstDeposit: number
	firstDepositDatetime: string
	gameLockStatus: number
	gender: number
	id: string
	invitationCode: string
	ipWindControlName: string
	labelId: number
	labelName: null | string
	lastDeposit: number
	lastLoginDatetime: string
	lastLoginDeviceNo: string
	lastLoginIp: string
	liquidationStatus: number
	loginLockStatus: number
	merchantId: string
	merchantName: string
	merchantPath: string
	mobile: null | string
	nickName: string
	parentMerchantId: number
	parentMerchantPath: string
	parentProxyId: string
	parentProxyLevel: string
	parentProxyLevelName: string
	parentProxyName: string
	parentProxyPath: string
	paymentLockStatus: number
	realName: null | string
	rebateFreezeStatus: number
	registerDeviceNo: string
	registerDeviceType: number
	registerIp: string
	remark: null | string
	topImagesUrl: string
	topMerchantId: string
	topMerchantName: string
	topProxyId: string
	topProxyName: string
	totalBigWithdrawNum: number
	totalDeposit: number
	totalDepositNum: number
	totalWithdraw: number
	totalWithdrawNum: number
	transforNum: number
	updatedAt: string
	userName: string
	vipExperience: number
	vipId: number
	vipLevel: number
	virAddr: null | any
	windControlId: number
	windControlName: string
}

export interface IMemberRateDetailQueryParams {
	memberId: string
	reportEndDate: number
	reportStartDate: number
}
export interface IMemberRateDetailItemResponse {
	currency: string
	memberName: string
	payoutStatus: number
	personRebateAmount: number
	reportDate: string
}

export interface IMemberTeamRebateV2QueryParams {
	id: string
	reportDate: string
}

export interface IMemberTeamRebateV2ItemResponse {
	platformFlag: string
	rebateAmount: number
	rebateRate: number
	serviceAmount: number
	serviceAmountContribution: number
	serviceChargeHand: number
	serviceChargeHandContribution: number
	serviceChargeRound: number
	serviceChargeRoundContribution: number
	validBetAmount: number
	venueName: string
}
